home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 May / Macworld (1999-05).dmg / Shareware World / Info / For Developers / SerialPort OSAX 1.1 / Bits&Bytes README < prev    next >
Text File  |  1997-03-13  |  5KB  |  85 lines

  1.                             Bits & Bytes
  2.            A set of scripting commands for manipulating numbers.
  3.  
  4.                                Written by:
  5.  
  6.                                               Blake Ward
  7.                                      18620 Favre Ridge Road
  8.                                             Los Gatos, CA
  9.                                                   95030
  10.  
  11.                                Blake.Ward@alumni.cs.cmu.edu
  12.                                                      or
  13.                                          bward@kagi.com
  14.  
  15. To use these scripting commands, just place the enclosed file ("Bits & Bytes Commands") in the Scripting Additions folder inside the Extensions folder in the System Folder.  The commands are described below, but should be very self-explanatory.  If you're unsure how a command works, just try it with some simple values and verify the result.
  16.  
  17. Since AppleScript treats all integers as signed values, the numbers you manipulate with these scripting commands will sometimes display as negative numbers or even numbers with an exponent.  The numbers might look strange in AppleScript, but they are still correct at the bit level.  For example:
  18.  
  19.    set x to 1
  20.   set y to setBit 31 of x to 1
  21.   -- y looks like a negative number now, but 'getBit 31 of y' will return 1
  22.   -- 'getBit 0 of y' is also 1, getBit for all other bits will return 0
  23.  
  24.   set z to decimal equivalent of "80000001"
  25.   -- y and z are now equal
  26.   set y to setBit 31 of y to 0
  27.   -- y is now equal to x again
  28.  
  29.  
  30. Bits&Bytes was primarily written to make it easy to manipulate byte values for use with the SerialPort scripting addition.  If you're interested in controlling devices that plug into the serial port from AppleScript, check out this scripting addition.  It should be available from the same archive where you got Bits&Bytes.
  31.  
  32. This scripting addition is free for non-commercial use, you may include it with any scripts you write provided you give credit in the About Box and manual.  If you want to use this scripting addition in a commercial product, please contact me for a very reasonable redistribution agreement.
  33.  
  34.  
  35. Bits&Bytes Dictionary
  36.  
  37. bitwiseOR: Returns the bitwise OR of two numbers.
  38.     bitwiseOR  integer  -- first number to be ORed with the second number.
  39.         with  integer  -- second number to be ORed with the first number.
  40.     Result:   integer  -- the result of ORing the bits in the two arguments (e.g. 'bitwiseOR 3 with 6' returns 7).
  41.  
  42. bitwiseAND: Returns the bitwise AND of two numbers.
  43.     bitwiseAND  integer  -- first number to be ANDed with the second number
  44.         with  integer  -- second number to be ANDed with the first number 
  45.     Result:   integer  -- the result of ANDing the bits in the two arguments (e.g. 'bitwiseAND 3 with 6' returns 2).
  46.  
  47. bitwiseXOR: Returns the XOR of the bits in the two arguments.
  48.     bitwiseXOR  integer  -- first number to XOR
  49.         with  integer  -- second number to XOR 
  50.     Result:   integer  -- the bitwise XOR of the two arguments (e.g. 'bitwiseXOR 3 with 6' will return 5)
  51.  
  52. bitwiseNOT: Returns the one's complement of the argument.
  53.     bitwiseNOT  integer  -- number to one's complement
  54.     Result:   integer
  55.  
  56. left shift: Shift all of the bits in the argument left by the given number of positions.
  57.     left shift  integer  -- number to be left shifted 
  58.         by  integer  -- number of bits to shift the number left
  59.     Result:   integer  -- result of the left shift
  60.  
  61. right shift: Right shift the bits in the argument by the given number of positions.
  62.     right shift  integer  -- number to be bit shifted
  63.         by  integer  -- number of bits to shift the argument right
  64.     Result:   integer  -- result of shifting the argument right by the number of bits
  65.  
  66. hex equivalent of: Returns the hexadecimal equivalent of the given number.
  67.     hex equivalent of  integer  -- number to convert to a hex string
  68.     Result:   string  -- hexadecimal equivalent of the argument.  If the argument is 0 - 255, then a two character string is returned.  If 256 - 65535, a four character string is returned.  Otherwise an eight character string is returned.
  69.  
  70. setBit: Set the given bit (0-31) of the value to a '0' or '1' and return the new value.
  71.     setBit  integer  -- which bit to change (where 31 is the most significant bit and 0 is the least significant bit).
  72.         of  integer  -- value to be changed
  73.         to  integer  -- new value for the given bit ('0' or '1').
  74.     Result:   integer  -- the new value with the given bit set or cleared.
  75.  
  76. getBit: Returns the value of the given bit of the value.
  77.     getBit  integer  -- which bit to return (where 31 is the most significant bit and 0 is the least significant bit).
  78.         of  integer  -- value to get the bit from.
  79.     Result:   integer  -- The current value of the given bit ('0' or '1').
  80.  
  81. decimal equivalent of: Returns the decimal equivalent of a hexidecimal string.
  82.     decimal equivalent of  string  -- hexidecimal string (1 - 8 characters, '0' - '9', 'a' - 'f', 'A' - 'F').
  83.     Result:   integer  -- Numeric equivalent of a hexidecimal string
  84.  
  85.